今天的題目比較簡單,於是我選了兩題來講解,第二題是 2021 年的題目,雖然是幾年前的題目了,但我覺得蠻有趣的。
第一題是要我們能夠從一個奇怪的檔案裡找出資訊,提示告訴我們可以用其他的方式打開檔案。
hint 1:This problem can be solved by just opening the file in different ways
將題目的檔案下載,會得到一個 pdf 檔案。flag2of2-final.pdf
打開檔案,出現以下字串。
用 file
檢視一下所得到的檔案,發現其格式應該為 png 檔才對。
$ file flag2of2-final.pdf
flag2of2-final.pdf: PNG image data, 50 x 50, 8-bit/color RGBA, non-interlaced
於是將 .pdf 更改為 .png,便會出現 flag 的前半部。
合併字串,便可得到 flag。
第二題我們看到題目和提示,沒有辦法得到甚麼特別的訊息。
hint 1:Weird that it won't display right…
將題目給的檔案下載,會得到一個未知檔案 tunn3l_v1s10n。用 file
檢視,會發現得到是 data 的訊息而已。
$ ls
tunn3l_v1s10n
$ file tunn3l_v1s10n
tunn3l_v1s10n: data
使用 exiftool
詳閱資訊,得知這是一個 bitmap 格式的檔案。
$ exiftool tunn3l_v1s10n
ExifTool Version Number : 12.40
File Name : tunn3l_v1s10n
Directory : .
File Size : 2.8 MiB
File Modification Date/Time : 2021:03:15 18:24:47+00:00
File Access Date/Time : 2024:08:02 14:58:36+00:00
File Inode Change Date/Time : 2024:08:02 14:58:25+00:00
File Permissions : -rw-rw-r--
File Type : BMP
File Type Extension : bmp
MIME Type : image/bmp
BMP Version : Unknown (53434)
Image Width : 1134
Image Height : 306
Planes : 1
Bit Depth : 24
Compression : None
Image Length : 2893400
Pixels Per Meter X : 5669
Pixels Per Meter Y : 5669
Num Colors : Use BitDepth
Num Important Colors : All
Red Mask : 0x27171a23
Green Mask : 0x20291b1e
Blue Mask : 0x1e212a1d
Alpha Mask : 0x311a1d26
Color Space : Unknown (,5%()
Rendering Intent : Unknown (826103054)
Image Size : 1134x306
Megapixels : 0.347
那造成圖片無法開啟的原因有可能是儲存時,有些重要資訊被誤植了。於是我們隨便下載兩張 bmp 圖片,並用 hexedit
查看圖片儲存的 hex 值,可以發現第兩張 bitmap 第一行的值都是相同的
$ hexedit sample_640×426.bmp
$ hexedit sample_1280×853.bmp
再來查看本題得到的圖片,發現第一行的值和前兩張都不同。
$ hexedit tunn3l_v1s10n
於是我們將 tunn3l_v1s10n 第一行的值更改,可以發現檔案能打開了。但是這裡出現的是 notaflag(sorry) 的字串。
於是想到可能跟圖片大小有關,所以我們試著把寬度增加,從 306 增加到 1000。那 hex (306) = 0x132,hex (1000) = 0x3e8,所以我們將 32 01
改成 3e 08
。
可以看到圖片上半部了,flag 就在這裡!
小結:
了解 bmp,還有 hexedit
指令。